#include "stdafx.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////
void calc_trix(tagUMyCalcFormula*pFormula,long numCalc,phistory_data paData,double*dataCalc[10],long decNum,long sec_type,_procReflection procReflection)
{
	long i=0,calcParam=pFormula->infoParam[0].nowValue;
	double*TRIX=dataCalc[0],*MATRIX=dataCalc[1];
	double*TR=dataCalc[4],*REFTR=dataCalc[5];
	double seedPrice(__price_seed__[decNum]);
	for(;i<numCalc;++i)
	{
		TR[i] = paData[i].ClosePx/seedPrice;
	}
	UMyCalc_EMA(TR,numCalc,calcParam);
	UMyCalc_EMA(TR,numCalc,calcParam);
	UMyCalc_EMA(TR,numCalc,calcParam);

	UMyCalc_REF(REFTR,TR,numCalc,1);
	UMyCalc_setinvalid(TRIX,numCalc);

	for(i=1;i<numCalc;++i)
	{
		if(REFTR[i]<0.0001f) TRIX[i] = TRIX[i-1];
		else TRIX[i] = (TR[i]-REFTR[i])/REFTR[i]*100;
	}
	memcpy(MATRIX,TRIX,numCalc*sizeof(double));
	UMyCalc_MA(MATRIX,numCalc,pFormula->infoParam[1].nowValue);
}
